/***********************************************************************************
 @file   低功耗定时器文件
 @author
 @attention 
 ***********************************************************************************/
#include "mid_lpm.h"
/***********************************************************************************
* @brief  初始化LPTimer  
          38.4k频率溢出时间为1.7067s,32.768K为2秒
***********************************************************************************/
void lptimer_init(void)
{
    stc_lptim_cfg_t    stcLptCfg;
    DDL_ZERO_STRUCT(stcLptCfg);

    ///< 使能LPTIM0 外设时钟
    Sysctrl_SetPeripheralGate(SysctrlPeripheralLpTim, TRUE);

    stcLptCfg.enGate   = LptimGateLow;
    stcLptCfg.enGatep  = LptimGatePLow;
    stcLptCfg.enTcksel = LptimXtl;
    stcLptCfg.enTogen  = LptimTogEnHigh;    // 翻转输出使能
    stcLptCfg.enCt     = LptimTimerFun;     //计数器功能
    stcLptCfg.enMd     = LptimMode2;        //工作模式为模式2：自动重装载16位计数器/定时器
    stcLptCfg.u16Arr   = 0;                 //预装载寄存器值
    Lptim_Init(M0P_LPTIMER, &stcLptCfg);

    Lptim_ClrItStatus(M0P_LPTIMER);        //清除中断标志位
    Lptim_ConfIt(M0P_LPTIMER, TRUE);       //允许LPTIMER中断
    EnableNvic(LPTIM_IRQn, IrqLevel3, TRUE);
    
    Lptim_Cmd(M0P_LPTIMER, TRUE);
}
/***********************************************************************************
 * @brief  LPTimer中断服务函数
***********************************************************************************/
void LpTim_IRQHandler(void)
{
    if (TRUE == Lptim_GetItStatus(M0P_LPTIMER))
    {
//         sleep_fsm();
//        printf("LpTim_IRQHandler\r\n"); 
        
        Lptim_ClrItStatus(M0P_LPTIMER);//清除LPTimer的中断标志位
  
    }
}

